home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / wais / x / display.c < prev    next >
C/C++ Source or Header  |  1995-05-09  |  6KB  |  212 lines

  1. /* WIDE AREA INFORMATION SERVER SOFTWARE:
  2.    No guarantees or restrictions.  See the readme file for the full standard
  3.    disclaimer.
  4.  
  5.    This is part of the X user-interface for the WAIS software.  Do with it
  6.    as you please.
  7.  
  8.    jonathan@Think.COM
  9.  *
  10.  * $Log:    display.c,v $
  11.  * Revision 1.5  92/04/28  15:25:21  jonathan
  12.  * Changed use of Scrolllist.
  13.  * 
  14.  * Revision 1.4  92/03/17  14:16:13  jonathan
  15.  * Generally cleaned things up.
  16.  * 
  17.  */
  18.  
  19. #ifndef lint
  20. static char *RCSid = "$Header: /tmp_mnt/net/quake/proj/wais/wais-8-b5/x/RCS/display.c,v 1.5 92/04/28 15:25:21 jonathan Exp $";
  21. #endif
  22.  
  23. #define XWAIS
  24. #include "xwais.h"
  25.  
  26. static ScrollList
  27. MakeQuestionFrame(parent)
  28. Widget parent;
  29. {
  30.   Widget frame, labelwid, button;
  31.   Widget view;
  32.   ScrollList result;
  33.   Arg arglist[10];
  34.   Cardinal num_args;
  35.  
  36.   frame = XtCreateManagedWidget("questions", formWidgetClass, parent, NULL, ZERO);
  37.  
  38.   labelwid = MakeLabel(frame, "questionlabel", "Questions:", NULL, NULL);
  39.  
  40.   num_args = 0;
  41.   XtSetArg (arglist[num_args], XtNforceBars, True); num_args++;
  42.   XtSetArg (arglist[num_args], XtNallowVert, True); num_args++;
  43.  
  44.   view = XtCreateManagedWidget ("qview", viewportWidgetClass,
  45.                 frame, arglist, num_args);
  46.  
  47.   result =
  48.     MakeScrollList(view, "questionWindow", Question_items, 
  49.            EditQuestion, NULL, NULL);
  50.  
  51.   button = MakeCommandButton(frame, "qadd", AddQuestion,
  52.                  view, NULL, NULL);
  53.   button = MakeCommandButton(frame, "qedit", EditQuestion,
  54.                  view, NULL, NULL);
  55.   button = MakeCommandButton(frame, "qdelete", DeleteQuestion,
  56.                  view, NULL, NULL);
  57.   return result;
  58. }
  59.  
  60. static ScrollList
  61. MakeSourceFrame(parent)
  62. Widget parent;
  63. {
  64.   Widget frame, labelwid, button, view;
  65.   ScrollList result;
  66.   Arg arglist[10];
  67.   Cardinal num_args;
  68.  
  69.   frame = XtCreateManagedWidget("tsources", formWidgetClass, parent, NULL, ZERO);
  70.  
  71.   labelwid = MakeLabel(frame, "sourcelabel", "Sources:", NULL, NULL);
  72.  
  73.   num_args = 0;
  74.   XtSetArg (arglist[num_args], XtNforceBars, True); num_args++;
  75.   XtSetArg (arglist[num_args], XtNallowVert, True); num_args++;
  76.  
  77.   view = XtCreateManagedWidget ("tsview", viewportWidgetClass,
  78.                 frame, arglist, num_args);
  79.  
  80.   result =
  81.     MakeScrollList(view, "sourceWindow", Source_items, 
  82.            EditSource, NULL, NULL);
  83.  
  84.   button = MakeCommandButton(frame, "sadd", AddSource,
  85.                  view, NULL, NULL);
  86.   button = MakeCommandButton(frame, "sedit", EditSource,
  87.                  view, NULL, NULL);
  88.   button = MakeCommandButton(frame, "sdelete", DeleteSource,
  89.                  view, NULL, NULL);
  90.   return result;
  91. }
  92.  
  93. static Widget
  94. MakeMessage(parent)
  95. Widget parent;
  96. {
  97.   Widget stringlabelwid;
  98.   Arg arglist[10];
  99.   Cardinal num_args;
  100.  
  101.   stringlabelwid = MakeLabel(parent, "mainstatuslabel", "Status:",
  102.                  NULL, NULL);
  103.   num_args = 0;
  104.   XtSetArg(arglist[num_args], XtNeditType, XawtextEdit); num_args++;
  105.   XtSetArg(arglist[num_args], XtNsensitive, False); num_args++;
  106.   XtSetArg(arglist[num_args], XtNfromVert, stringlabelwid); num_args++;
  107.   return XtCreateManagedWidget("messageWindow", asciiTextWidgetClass,
  108.                    parent, arglist, num_args);
  109. }
  110.  
  111. static Widget
  112. MakeSourcePopup(parent)
  113. Widget parent;
  114. {
  115.   Widget shell, frame, labelwid, stringlabelwid, button;
  116.   WidgetClass wclass;
  117.   static String
  118.     namestring,
  119.     serverstring,
  120.     servicestring,
  121.     dbstring,
  122.     cost, units,
  123.     maintainer,
  124.     description;
  125.   int CurrentSource;
  126.   Source source;
  127.  
  128.   CurrentSource = get_selected_source();
  129.  
  130.   if (CurrentSource != NO_ITEM_SELECTED) {
  131.     source = findSource(CurrentSource);
  132.     namestring = source->name;
  133.     serverstring = source->server;
  134.     servicestring = source->service;
  135.     dbstring = source->database;
  136.     cost = source->cost;
  137.     units = source->units;
  138.     maintainer = source->maintainer;
  139.     description = source->description;
  140.   } else {
  141.     namestring = "default";
  142.     serverstring = "localhost";
  143.     servicestring = "8000";
  144.     dbstring = "";
  145.     cost = "";
  146.     units = "";
  147.     maintainer = "";
  148.     description = "";
  149.   }
  150.  
  151.   shell = XtCreatePopupShell("sourcepopup", applicationShellWidgetClass,
  152.                  parent, NULL, ZERO);
  153.   frame = XtCreateManagedWidget("sourcepopupform", formWidgetClass,
  154.                 shell, NULL, ZERO);
  155.  
  156.   labelwid = MakeLabel(frame, "sourceditlabel", "Source Edit", NULL, NULL);
  157.  
  158.   stringlabelwid = MakeLabel(frame, "sourcenamelabel", "       Name:", labelwid, NULL);
  159.   snamewid = MakeStringBox(frame, "sourcename", namestring, labelwid, stringlabelwid);
  160.  
  161.   stringlabelwid = MakeLabel(frame, "serverlabel",     "     Server:", snamewid, NULL);
  162.   serverwid = MakeStringBox(frame, "server", serverstring, snamewid, stringlabelwid);
  163.  
  164.   stringlabelwid = MakeLabel(frame, "servicelabel", "    Service:", serverwid, NULL);
  165.   servicewid = MakeStringBox(frame, "service", serverstring, serverwid, stringlabelwid);
  166.  
  167.   stringlabelwid = MakeLabel(frame, "dblabel",      "   Database:", stringlabelwid, NULL);
  168.   dbwid = MakeStringBox(frame, "database", dbstring, servicewid, stringlabelwid);
  169.  
  170.   stringlabelwid = MakeLabel(frame, "costlabel",    "       Cost:", stringlabelwid, NULL);
  171.   costwid = MakeStringBox(frame, "cost", cost, dbwid, stringlabelwid);
  172.  
  173.   stringlabelwid = MakeLabel(frame, "unitlabel",    "      Units:", stringlabelwid, NULL);
  174.   unitwid = MakeStringBox(frame, "costunit", units, costwid, stringlabelwid);
  175.  
  176.   stringlabelwid = MakeLabel(frame, "maintlabel",   " Maintainer:", stringlabelwid, NULL);
  177.   maintainerwid = MakeStringBox(frame, "maintainer", maintainer, unitwid, stringlabelwid);
  178.  
  179.   stringlabelwid = MakeLabel(frame, "desclabel",    "Description:", stringlabelwid, NULL);
  180.   descwid = MakeStringBox(frame, "description", description, stringlabelwid, NULL);
  181.  
  182.   button = MakeCommandButton(frame, "sdone", CloseSourceEdit, descwid, NULL, NULL);
  183.   MakeCommandButton(frame, "cancel", CancelSourceEdit, descwid, button, NULL);
  184.  
  185.   return shell;
  186. }
  187.  
  188. Widget
  189. SetupWaisDisplay(parent)
  190. Widget parent;
  191. {
  192.   Widget form, button;
  193.  
  194.   form = XtCreateManagedWidget ("form", formWidgetClass,
  195.                 parent, NULL, ZERO);
  196.  
  197.   questionwindow = MakeQuestionFrame(form);
  198.  
  199.   sourcewindow = MakeSourceFrame(form);
  200.  
  201.   button = MakeCommandButton(form, "help", XwaisHelp,
  202.                  NULL, NULL, NULL);
  203.  
  204.   MakeCommandButton(form, "quit", DoQuit, NULL, button, NULL);
  205.  
  206.   messwidget = MakeMessage(form);
  207.  
  208.   sourcepopup = MakeSourcePopup(top);
  209.  
  210.   return form;
  211. }
  212.